/*
 * PersonFlowCounter.h
 *
 *  Created on: 2018年10月3日
 *      Author: zhengboyuan
 */

#ifndef PERSONFLOWCOUNTER_H_
#define PERSONFLOWCOUNTER_H_

#include "PersonFlow.h"


class PersonFlowCounter
{
public:
    virtual ~PersonFlowCounter() {}

    virtual bool open(const char* filepath) =0;

    virtual void close() =0;

    virtual bool addCamera(const Camera& camera) =0;

    virtual bool deleteCamera(const std::string& id) =0;

    virtual void deleteCameras() =0;

	virtual bool getCamera(const std::string& id, Camera& camera) = 0;

    virtual void setSink(PersonFlowSink* sink) =0;

    virtual bool isConnected(const std::string& id) =0;

    virtual bool getCount(const std::string& id, PersonFlowCount& flowCount) =0;

    virtual void getTotalCount(PersonFlowCount& flowCount) =0;

	virtual int getCameraCount() = 0;

	virtual bool getCamera(int index, Camera& camera) = 0;

	virtual bool reconnect(const std::string& id) = 0;

};

#endif /* PERSONFLOWCOUNTER_H_ */
